iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0

分享主軸

  • ActionResult 和 IActionResult 差異

ActionResult

有多個具體的子類別,如 ViewResult、JsonResult、RedirectResult

public ActionResult Index()
{
    return View(); // 返回一個 ViewResult
}

public ActionResult GetJson()
{
    return Json(new { Name = "Felo", Age = 30 }); // 返回一個 JsonResult
}

IActionResult

此介面定義一個方法 : ExecuteResultAsync,執行操作結果,ActionResult 類別實現了這個介面,因此 ActionResult 及其子類別都可以被視為 IActionResult

public IActionResult Index()
{
    return View(); // ViewResult 實現了 IActionResult
}

public IActionResult GetJson()
{
    return Json(new { Name = "Felo", Age = 30 }); // JsonResult 實現了 IActionResult
}

差異

  • IActionResult 提供了更大的靈活性,因為任何實現了這個介面的類別都可以作為返回值
  • ActionResult 則限制在其子類別範圍內

ActionResult 是一個抽象類別,具體的子類別表示不同的回應類型

IActionResult 是一個介面,提供了更大的靈活性

參考文章

https://learn.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-8.0#actionresult-vs-iactionresult


上一篇
Day 26 Session : 保留資料狀態方式之一
系列文
靠近 ASP .NET Core 一點點27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言